记录一次 Arch Linux 图形加速丢失问题排查
昨天还好好的,今天一开机,发现 Arch Linux 桌面环境的图形加速没了。接下来,我想邀请你与我一起,进行排查,假设你是一名自身 Arch Linux 用户,请对我进行相应的指导。
首先,我把系统升级到最新版本,但是问题依旧。
通过以下命令查看系统日志:
journalctl -b -p err
找到与显卡相关的报错如下:
Feb 11 15:40:12 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* DSI link not ready
Feb 11 15:40:12 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_htotal (expected 1720, found 1722)
Feb 11 15:40:12 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_hblank_end (expected 1720, found 1722)
Feb 11 15:40:12 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_hsync_start (expected 1660, found 1662)
Feb 11 15:40:12 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_htotal (expected 1720, found 1722)
Feb 11 15:40:12 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_hblank_end (expected 1720, found 1722)
Feb 11 15:40:12 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_hsync_start (expected 1660, found 1662)
问题似乎与 Intel 图形驱动(i915)有关,特别是与显示接口(DSI)链接问题以及 CRTC(显示定时控制器)配置不匹配相关。
我的电脑是小新 Duet,一台 Intel i5-1235U CPU 的二合一平板电脑。这让我回想起,在初次给这台电脑安装 Arch Linux 时,使用默认 Linux 内核出现了花屏问题,花屏原因也是与 i915、DSI、CRTC 相关,后来更换低版本的 LTS 内核后,问题才解决。
我发现,当初的花屏问题,有人提了一个 issue 描述:Lenovo 82TQ - Internal DSI display unusable - various groups of rows with totally noisy pixels (#10071) · Issues · drm / intel · GitLab
Laptop screen unusable after upgrade to kernel 6.6.x.fc39.x86_64 - Fedora Discussion
- On Linux 6.5 it is OK, kernel log is similar (shows also pipe config mismatch):
我电脑内安装的内核有:
core/linux 6.7.4.arch1-1 [installed]
core/linux-lts 6.6.16-1 [installed]
extra/linux-zen 6.7.4.zen1-1 [installed]
当前使用的内核是 LTS 内核。我昨天刚升级过系统,如此看来,是 LTS 内核升级后,出现的。
梳理一下:
- 最初安装 Arch Linux 时,Linux 内核显示有问题,当时 LTS 版本低,切到 LTS 问题解决
- 现在升级后,Linux 新版本内核版本提升,LTS 内核版本提升,LTS 内核有问题
于是我产生了一个想法,切换回高版本的 Linux 内核试一试。
切换回来,问题还是依旧。再次查看系统错误日志:
Feb 11 15:55:39 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* DSI link not ready
Feb 11 15:55:39 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_htotal (expected 1720, found 1722)
Feb 11 15:55:39 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_hblank_end (expected 1720, found 1722)
Feb 11 15:55:39 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_hsync_start (expected 1660, found 1662)
Feb 11 15:55:39 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_htotal (expected 1720, found 1722)
Feb 11 15:55:39 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_hblank_end (expected 1720, found 1722)
Feb 11 15:55:39 archlinux kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_hsync_start (expected 1660, found 1662)
开启 i915.enable_guc=3
内核参数。重启后通过 dmesg 看是否开启成功:
[ 1.579415] i915 0000:00:02.0: vgaarb: deactivate vga console
[ 1.579595] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[ 1.581126] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 1.587090] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.20)
[ 1.597483] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.13.1
[ 1.597487] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[ 1.613849] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
[ 1.614928] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[ 1.614929] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[ 1.615371] i915 0000:00:02.0: [drm] GT0: GUC: RC enabled
[ 1.616051] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[ 2.479721] i915 0000:00:02.0: [drm] *ERROR* DSI link not ready
[ 2.740946] i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_htotal (expected 1720, found 1722)
[ 2.740970] i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_hblank_end (expected 1720, found 1722)
[ 2.740978] i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.pipe_mode.crtc_hsync_start (expected 1660, found 1662)
[ 2.740985] i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_htotal (expected 1720, found 1722)
[ 2.740991] i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_hblank_end (expected 1720, found 1722)
[ 2.740998] i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] mismatch in hw.adjusted_mode.crtc_hsync_start (expected 1660, found 1662)
[ 2.741014] i915 0000:00:02.0: pipe state doesn't match!
[ 2.741047] WARNING: CPU: 2 PID: 151 at drivers/gpu/drm/i915/display/intel_modeset_verify.c:223 intel_modeset_verify_crtc+0x4d8/0x560 [i915]
[ 2.741566] Modules linked in: i915(+) i2c_algo_bit drm_buddy video wmi ttm intel_gtt drm_display_helper cec btrfs blake2b_generic libcrc32c crc32c_generic crc32c_intel xor raid6_pq
[ 2.741607] RIP: 0010:intel_modeset_verify_crtc+0x4d8/0x560 [i915]
[ 2.742045] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.742400] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.742766] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.743074] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.743360] ? intel_fbc_activate+0x35/0x90 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.743755] intel_atomic_commit_tail+0x874/0xe20 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.744134] intel_atomic_commit+0x341/0x390 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.744477] intel_initial_commit+0x16a/0x200 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.744786] intel_display_driver_probe+0x26/0x90 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.745088] i915_driver_probe+0x733/0xbe0 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.745392] i915_init+0x22/0xc0 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.745615] ? __pfx_i915_init+0x10/0x10 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 2.748659] [drm] Initialized i915 1.6.0 20230929 for 0000:00:02.0 on minor 1
[ 2.750979] fbcon: i915drmfb (fb0) is primary device
[ 2.757277] i915 0000:00:02.0: pipe state doesn't match!
[ 9.696270] WARNING: CPU: 4 PID: 632 at drivers/gpu/drm/i915/display/intel_modeset_verify.c:223 intel_modeset_verify_crtc+0x4d8/0x560 [i915]
[ 9.696920] intel_skl_int3472_tps68470 igen6_edac tps68470_regulator ideapad_laptop clk_tps68470 i2c_hid_acpi i2c_hid platform_profile int3400_thermal int3403_thermal intel_hid acpi_thermal_rel rfkill soc_button_array sparse_keymap int340x_thermal_zone intel_skl_int3472_discrete acpi_pad psmouse mac_hid pkcs8_key_parser crypto_user loop fuse dm_mod nfnetlink zram ip_tables x_tables serio_raw atkbd libps2 nvme vivaldi_fmap nvme_core xhci_pci sha256_ssse3 spi_intel_pci xhci_pci_renesas nvme_auth spi_intel i8042 serio i915 i2c_algo_bit drm_buddy video wmi ttm intel_gtt drm_display_helper cec btrfs blake2b_generic libcrc32c crc32c_generic crc32c_intel xor raid6_pq
[ 9.697010] RIP: 0010:intel_modeset_verify_crtc+0x4d8/0x560 [i915]
[ 9.697411] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 9.697767] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 9.698136] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 9.698448] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 9.698761] ? intel_fbc_activate+0x35/0x90 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 9.699083] intel_atomic_commit_tail+0x874/0xe20 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 9.699421] intel_atomic_commit+0x341/0x390 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 16.132970] i915 0000:00:02.0: [drm] *ERROR* DSI link not ready
[ 16.395836] i915 0000:00:02.0: pipe state doesn't match!
[ 16.396002] WARNING: CPU: 4 PID: 1470 at drivers/gpu/drm/i915/display/intel_modeset_verify.c:223 intel_modeset_verify_crtc+0x4d8/0x560 [i915]
[ 16.397165] processor_thermal_power_floor intel_ishtp intel_vsec roles processor_thermal_mbox intel_skl_int3472_tps68470 igen6_edac tps68470_regulator ideapad_laptop clk_tps68470 i2c_hid_acpi i2c_hid platform_profile int3400_thermal int3403_thermal intel_hid acpi_thermal_rel rfkill soc_button_array sparse_keymap int340x_thermal_zone intel_skl_int3472_discrete acpi_pad psmouse mac_hid pkcs8_key_parser crypto_user loop fuse dm_mod nfnetlink zram ip_tables x_tables serio_raw atkbd libps2 nvme vivaldi_fmap nvme_core xhci_pci sha256_ssse3 spi_intel_pci xhci_pci_renesas nvme_auth spi_intel i8042 serio i915 i2c_algo_bit drm_buddy video wmi ttm intel_gtt drm_display_helper cec btrfs blake2b_generic libcrc32c crc32c_generic crc32c_intel xor raid6_pq
[ 16.397311] RIP: 0010:intel_modeset_verify_crtc+0x4d8/0x560 [i915]
[ 16.398022] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 16.398575] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 16.399130] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 16.399597] ? intel_modeset_verify_crtc+0x4d8/0x560 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 16.400048] ? intel_fbc_activate+0x35/0x90 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 16.400301] intel_atomic_commit_tail+0x874/0xe20 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
[ 16.400429] intel_atomic_commit+0x341/0x390 [i915 21bc83a10ce365a4f2ec1e3564d9c9964cdc6824]
问题并没有解决,但从中发现了更加详尽的报错内容。
DSI link not ready
[DSI to eDP adapter] i915 0000:00:02.0: [drm] *ERROR* DSI link not ready (#9045) · Issues · drm / intel · GitLab:提出了关于使用DSI到eDP适配器在Intel设备上遇到的问题。问题描述中提到,有些手持设备在使用MiPi到eDP适配器时遇到了显示不开启和需要硬件旋转支持的合成器(如gamescope)失败的问题。这个问题特别提到了Aya Neo Air(INTEL版本)的设备,指出这个问题似乎是与Intel硬件相关,而在AMD硬件上没有遇到过类似问题。
网络搜索
message
[drm] *ERROR* DSI link not ready
appears because a bug in i915 introduced some months ago.
- Fedora does not boot after upgrade. : r/Fedora
- F39 Kernel 6.6.x No video on Intel Integrated Graphics - Fedora Discussion
linux-drm-tip-git
内核降级
cd /var/cache/pacman/pkg
sudo pacman -U linux-lts-6.1.68-1-x86_64.pkg.tar.zst linux-zen-headers-6.6.4.zen1-1-x86_64.pkg.tar.zst
本文作者:Maeiee
本文链接:记录一次 Arch Linux 图形加速丢失问题排查
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!